Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 14.12.2014, 21:50
Аспирант
Отправить личное сообщение для Dtri Посмотреть профиль Найти все сообщения от Dtri
 
Регистрация: 14.12.2014
Сообщений: 86

массив POST-ом из PHP в Javascript методом ajax Jquery
Здравствуйте!


Суть задачи:

Получить переменные из PHP массивом методом ajax используя библиотеку JQuery.

есть файлы:
inex.htm
vars.js
res.php

в vars.sj написано следующее:

$(document).ready(function () {
$('#btn').on('click',function(){
$.ajax({
type: "POST",
url: "res.php",
data: "foo=bar", //передаю переменную "foo" со значением "bar"
beforesend: $('#content').html('Загрузка'),
success: function(){
//тут функция обработки ответа из php
//php получил переменную сделал какое-то действие и вернул
//переменную "foo" но уже со значением "bar2"
// теперь нужно какой-нибудь переменной присвоить это значение "bar2"
}
});
});
});


как получить массив из post методами JQuery или чистым JS?
или с PHP прислать строку и разбить её на массивы?
хотелось бы как-нибудь реализовать первый вариант.
Есть ли в JS такие переменные для работы с POST массивом как на подобии с $_POST в PHP?

Последний раз редактировалось Dtri, 14.12.2014 в 22:00.
Ответить с цитированием
  #2 (permalink)  
Старый 14.12.2014, 22:27
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Dtri
как получить массив из post методами JQuery или чистым JS?
или с PHP прислать строку и разбить её на массивы?
хотелось бы как-нибудь реализовать первый вариант.
Есть ли в JS такие переменные для работы с POST массивом как на подобии с $_POST в PHP?
почитай доку и про json
Ответить с цитированием
  #3 (permalink)  
Старый 14.12.2014, 22:41
Аспирант
Отправить личное сообщение для Dtri Посмотреть профиль Найти все сообщения от Dtri
 
Регистрация: 14.12.2014
Сообщений: 86

Rise,
например я
я послал через ajax что-то на адрес "/какой-то_урл"

$.ajax({
type: "POST",
url: "/какой-то_урл",
data: "foo=bar",

success: function(){
// и хочу получить оттуда переменные
// напримаер: на той стороне мне выдают array(
key => value,
key2 => value2,
key3 => value3,
...
)
// и я хочу эти значения связать с какими-то переменными в Яве
// keyJS = value (keyJS = array[key])
// вот как воплотить эту идею?
}
Ответить с цитированием
  #4 (permalink)  
Старый 14.12.2014, 23:56
Аспирант
Отправить личное сообщение для Dtri Посмотреть профиль Найти все сообщения от Dtri
 
Регистрация: 14.12.2014
Сообщений: 86

Rise,
в вашем примере вы используете функцию Post

$.post("script.php", { x: x, id: id }, onAjaxSuccess, "json");
function onAjaxSuccess(data) {
// data.x
// data.id
}

насколько я знаю это не полная функция от ajax.
можно ли вот так описать то же действие приведённое вами выше?
$.ajax({
type: "POST",
url: "script.php",
data: { x: 'x', id: 'id' },
success: function(){
// data.x
// data.id
}
});

Будет ли это одно и тоже?


дальше я чтобы обратиться к переменным использую:

$.getJSON("script.php", function(data) {
alert( data.x );
alert( data.id );
});

правильно ли я делаю?
весь вид скрипта у меня выглядит так:

$.ajax({
type: "POST",
url: "script.php",
data: { x: 'x', id: 'id' },
success: function(){
$.getJSON("script.php", function(data) {
alert( data.x );
alert( data.id );
});
}
});

Последний раз редактировалось Dtri, 15.12.2014 в 00:01.
Ответить с цитированием
  #5 (permalink)  
Старый 15.12.2014, 00:38
Аспирант
Отправить личное сообщение для Dtri Посмотреть профиль Найти все сообщения от Dtri
 
Регистрация: 14.12.2014
Сообщений: 86

Rise,
Зрительно наглядней.
читабельней. Сугубо субъективно.

Вы не ответили.

$.getJSON("script.php", function(data) {
alert( data.x );
alert( data.id );
});

правильно ли я делаю?
и есть ли способ получить не json а скажем text/html
например функция разбора строки вида:
name=vasia$surname=petrov

есть ли для данной задачи функция аналогичная $.getJSON?
Ответить с цитированием
  #6 (permalink)  
Старый 15.12.2014, 00:53
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 457

Dtri, $.post и $.getJSON, особое внимание обратить на "This is a shorthand Ajax function, which is equivalent to:"
Ответить с цитированием
  #7 (permalink)  
Старый 15.12.2014, 01:22
Аспирант
Отправить личное сообщение для Dtri Посмотреть профиль Найти все сообщения от Dtri
 
Регистрация: 14.12.2014
Сообщений: 86

Rise,
понял. спасибо.

ещё вопрос. немного в сторону. Я уже пол дня ищу на просторах интернета и не нашёл ничего вразумительно объясняющего хотябы в какую сторону смотреть.

Пример из практики.

по адресу /isSuccess мне передают переменную JSON. Но именно get-ом.


хочу воплотить метод взаимодействия компонентов REST
Передавать POST-ом а принимать get-ом. как это можно реализовать?

Если сформулировать коротко:
То при заполнении формы и нажатии на кнопку submit.
нужно передать её на сервер в виде POST запроса.
сервер сделает операции.
и выдаст ответ в виде GET запроса.
На стороне клиента нужно принять этот запрос, вывести его в строку браузера и разбить его на переменные.
для дальнейших действий на стороне клиента.

или если я правильно понимаю:
$.post("post.php", onAjaxSuccess, "json");
function onAjaxSuccess(data) {
alert(data.x) ;
alert(data.id) ;
}
эти "x" и "id" и так get-ом возвращаются?

или же в REST имеется в виду. что если я хочу внести в базу что-то то должен тогда сделать:

$.ajax({
type: "POST", //выбираю post для отправки
url: "script.php",
data: { x: 'x', id: 'id' },
dataType:'json',
success: function(){
// жду от сервера код 201 (created)
}
});

а если хочу просто получить что-то, то:
$.ajax({
type: "GET", //выбираю post для отправки
url: "script.php",
data: { x: 'x', id: 'id' },
dataType:'json',
success: function(data){
data.x
data.y
// получаю соответсвено что просил.
}
});


Разъясните если вам не трудно. Запутался в информации.

Последний раз редактировалось Dtri, 15.12.2014 в 03:13.
Ответить с цитированием
  #8 (permalink)  
Старый 16.12.2014, 20:24
Аспирант
Отправить личное сообщение для Dtri Посмотреть профиль Найти все сообщения от Dtri
 
Регистрация: 14.12.2014
Сообщений: 86

Rise,
Извините за долгий ответ. Я не заметил что появилась вторая страница в теме.

Сообщение от Rise Посмотреть сообщение
Dtri, а что за "компоненты" у вас и какие "взаимодействия" вы хотите реализовать между ними?
Я о стандарте REST/

и о любых взаимодействиях с сервером.

К примеру в стандарте говорится что:
отправлять данные нужно POST-ом
Принимать GET-ом
Изменять PUT-ом
удалять DELETE-ом

Я пытаюсь понять. Чтобы принять данные по этому стандарту я получается должен написать следующую функцию (если использую JQuery)

$.ajax({
type: "GET",
url: "script.php",
data: { x: 'x', id: 'id' },
dataType:'json',
success: function(data){
data.x
data.y
// получаю соответсвено что просил.
}
});


Тоесть в type указываю GET

или же не важно что я укажу в type, и ответ всёравно придёт в GET формате?

Последний раз редактировалось Dtri, 16.12.2014 в 21:25.
Ответить с цитированием
  #9 (permalink)  
Старый 17.12.2014, 18:09
Аспирант
Отправить личное сообщение для Dtri Посмотреть профиль Найти все сообщения от Dtri
 
Регистрация: 14.12.2014
Сообщений: 86

Сообщение от Rise Посмотреть сообщение
Dtri, не с того вы начали, реализация REST начинается с сервера. Что за веб-сервис то хотите сделать?
Сервис:
запись в базу.
поиск в базе. и вывод клиенту.
редактирование записей базы.
удаление записей.

Стандартное вэб приложение.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передать данные через ajax в php djonA Общие вопросы Javascript 3 03.04.2013 00:07
Вопросик по AJAX (jQuery) Artsemi Общие вопросы Javascript 3 13.02.2013 11:24
Получить функцию JavaScript (PHP, AJAX, jQuery) Sinot jQuery 3 04.02.2013 13:32
Как получить javasript массив из php? dima_tr AJAX и COMET 6 01.02.2013 03:37
jQuery Ajax Rater Plugin и массив POST - Нужна помощь TROODON jQuery 12 30.12.2009 22:44